// Enesea Linux Device
// (c) jimon game studio

#ifndef JEH_CDEVICE_LINUX
#define JEH_CDEVICE_LINUX

#include "IDevice.h"
#include "CWindow_Linux.h"

#ifdef JE_DEVICE_LINUX

namespace je
{
	namespace device
	{
		//! Linux Device
		class CDevice_Linux:public je::device::IDevice
		{
		private:
			typedef jeMap<Window,CWindow_Linux*> WindowMapType;
			WindowMapType WindowMap;

			typedef jeMap<KeySym,input::KeyCode> KeyMapType;
			KeyMapType KeyMap;

			Display * CurrentDisplay;
		public:
			//! Constructor
			CDevice_Linux();

			//! Destructor
			~CDevice_Linux();

			//! Create Window
			IWindow * CreateWindow(const jeVector2di & Size,const jeStringd & Title = NULL,u1 FullScreen = false,s32 Depth = 0,s32 Hertz = 0,s32 MSAA = 0,const void * PlatformIconId = NULL);

			//! Delete Window
			void DeleteWindow(IWindow * Window);

			//! Device Poll
			void DevicePoll();
		};
	}
}

#endif

#endif
